/* Araujo Heiker CI. 19726991
 * Goyo Willandher CI.20666542
 * Rodriguez Rafael CI.20009872
 * Williams Roman CI.20016812 
 * Morett Gilberth CI.20929667*/

package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modelo.Cliente;
import modelo.Drogueria;
import modelo.Proveedor;
import vista.VentanaConsultaCliente;
import vista.VentanaConsultaProveedor;
import vista.VentanaProveedor;

public class ControladorVentanaProveedor implements ActionListener {


	private VentanaProveedor ventanaProveedor;
	private VentanaConsultaProveedor consultaProveedor;
	private Proveedor proveedor;
	private Drogueria drogueria;
	private String imec;
	String codigo;
	boolean estatus;
	
	public ControladorVentanaProveedor(Drogueria drogueria){
		ventanaProveedor = new VentanaProveedor();
		ventanaProveedor.agregarListener(this);
		ventanaProveedor.setLocationRelativeTo(null);
		ventanaProveedor.setVisible(true);
		ventanaProveedor.setVisibleBtnAceptar(false);
		ventanaProveedor.setVisibleBtnGuardar(true);
		this.drogueria = drogueria;
		
	}
	
	public ControladorVentanaProveedor(Drogueria drogueria,String imec,String codigo){
		ventanaProveedor = new VentanaProveedor();
		ventanaProveedor.agregarListener(this);
		ventanaProveedor.setLocationRelativeTo(null);
		ventanaProveedor.setVisible(true);
		this.drogueria = drogueria;
		this.imec = imec;
		this.codigo=codigo;
		ventanaProveedor.setVisibleBtnAceptar(true);
		ventanaProveedor.setVisibleBtnGuardar(false);
		this.inicializarVentana();
		
	}
	
	
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		if (e.getActionCommand().equalsIgnoreCase("Incluir")) {
			
			if(verificarProveedor()==false)
			{
				if(verificarCajasTxt()==false)
					ventanaProveedor.mostrarMensaje("Error debe de llenar todos los campos");
				else
				{
					incluirProveedor();
					ventanaProveedor.dispose();
				}
					
			}
			else
			{
				ventanaProveedor.mostrarMensaje("ERROR! Proveedor ya incluido con este codigo!");
			}
			
		}
		
		else{
			
			if(e.getActionCommand().equalsIgnoreCase("Aceptar")){
				incluirModificarProveedor();
				ventanaProveedor.dispose();
				estatus = false;
			}
		
			else{
				if(e.getActionCommand().equalsIgnoreCase("Cancelar")) {
					ventanaProveedor.limpiarTxt();
				}
					
			}
		}
		
		
					
	}
	
	public void incluirProveedor() {
		
	
			String id ;
			String nombre;
			String telefono;
			String correo;
			String direccion;
			id = ventanaProveedor.getTxtId();
			nombre = ventanaProveedor.getTxtNombre();
			telefono = ventanaProveedor.getTxtTelefono();
			correo = ventanaProveedor.getTxtCorreo();
			direccion = ventanaProveedor.getTxtDireccion();
			Proveedor proveedor = new Proveedor();

			proveedor.setId(id);
			proveedor.setNombre(nombre);
			proveedor.setTelefono(telefono);
			proveedor.setCorreo(correo);
			proveedor.setDireccion(direccion);
			proveedor.setEstatus(Proveedor.ACTIVO);

			drogueria.incluirProveedor(proveedor);

			ventanaProveedor.mostrarMensaje("Registro con exito");
			new ControladorVentanaConsultaProveedor(drogueria);

			
			
		
	}


	public void incluirModificarProveedor(){
		int indice = drogueria.buscarProveedor(codigo);
		Proveedor proveedor = drogueria.getUnProveedor(indice);

		String id ;
		String nombre;
		String telefono;
		String correo;
		String direccion;
		id = ventanaProveedor.getTxtId();
		nombre = ventanaProveedor.getTxtNombre();
		telefono = ventanaProveedor.getTxtTelefono();
		correo = ventanaProveedor.getTxtCorreo();
		direccion = ventanaProveedor.getTxtDireccion();
		

		proveedor.setId(id);
		proveedor.setNombre(nombre);
		proveedor.setTelefono(telefono);
		proveedor.setCorreo(correo);
		proveedor.setDireccion(direccion);
		proveedor.setEstatus(Proveedor.ACTIVO);

		drogueria.setUnProveedor(indice, proveedor);

		ventanaProveedor.mostrarMensaje("Modificacion con exito");
		new ControladorVentanaConsultaProveedor(drogueria);
	}

	public boolean verificarProveedor(){
		
		String id = ventanaProveedor.getTxtId();
		 estatus = false;
		
		
		for(int i =0;i<drogueria.cantidadProveedores();i++)
		{
			if(id.equals(drogueria.getUnProveedor(i).getId()))
			{
				estatus = true;
				
				if(drogueria.getUnProveedor(i).getEstatus()==Proveedor.INACTIVO  )	{
					estatus = false;
				}
					

			}
				
				
		}
		
		return estatus;

	}
	
	public boolean verificarCajasTxt(){
		
		String id ;
		String nombre;
		String telefono;
		String correo;
		String direccion;
		id = ventanaProveedor.getTxtId();
		nombre = ventanaProveedor.getTxtNombre();
		telefono = ventanaProveedor.getTxtTelefono();
		correo = ventanaProveedor.getTxtCorreo();
		direccion = ventanaProveedor.getTxtDireccion();
		boolean estatus = true;
		
		if(id.equals("") ||nombre.equals("")||telefono.equals("") || correo.equals("")||direccion.equals(""))
			estatus = false;
		
		return estatus;
	}

	public void inicializarVentana() {

		if (imec.equals("Modificar")) {

			modificarProveedor();
		} else if (imec.equals("Buscar")) {
			buscarProveedor();
		}
	}
	
	public void modificarProveedor() {

		
		int indice = drogueria.buscarProveedor(codigo);
		Proveedor proveedor = drogueria.getUnProveedor(indice);
		String id ;
		String nombre;
		String telefono;
		String correo;
		String direccion;
		id = proveedor.getId();
		nombre = proveedor.getNombre();
		telefono = proveedor.getTelefono();
		correo = proveedor.getCorreo();
		direccion = proveedor.getDireccion();
		
		ventanaProveedor.setId(id);
		ventanaProveedor.setNombre(nombre);
		ventanaProveedor.setTelefono(telefono);
		ventanaProveedor.setCorreo(correo);
		ventanaProveedor.setDireccion(direccion);

	}

	public void buscarProveedor() {

		
		int indice = drogueria.buscarProveedor(codigo);
		Proveedor proveedor = drogueria.getUnProveedor(indice);
		String id ;
		String nombre;
		String telefono;
		String correo;
		String direccion;
		id = proveedor.getId();
		nombre = proveedor.getNombre();
		telefono = proveedor.getTelefono();
		correo = proveedor.getCorreo();
		direccion = proveedor.getDireccion();
		
		ventanaProveedor.setId(id);
		ventanaProveedor.setNombre(nombre);
		ventanaProveedor.setTelefono(telefono);
		ventanaProveedor.setCorreo(correo);
		ventanaProveedor.setDireccion(direccion);
	}
}